package ln.javatest.day15.demo01;
/*
序列化的之前：
编译器会把Person.java文件编译生成Person.class文件
Person类实现了Serializable接口，就会根据类的定义
给Person.class文件，添加一个序列号

序列化的时候：序列号也跟着在Person.txt中

反序列化的时候：
会使用Person.class文件中的序列号和Person.txt中的序列号比较
如果是一样的，则反序列化成功
如果不一样，则抛出InvalidClassException

*/

import java.io.FileInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;

public class ObjectInputStreamDemo02 {
    public static void main(String[] args) throws IOException, ClassNotFoundException {
        //1.创建ObjectInputStream对象，构造方法中传递字节输入流
        ObjectInputStream ois = new ObjectInputStream(new FileInputStream("D:\\桌面\\Java笔记\\1.txt"));
        //2.使用ObjectInputStream对象中的方法readObject读取保存对象的文件
        Object o= ois.readObject();
        //3.释放资源
        ois.close();
        //4.使用读取出来的对象（打印）
        System.out.println(o);
        Person p = (Person) o;
        System.out.println(p.getName()+p.getAge());
    }
}
